	<script type="text/javascript">
	function pasarVariables(pagina, nombres) {
  pagina +="?";
  nomVec = nombres.split(",");
  for (i=0; i<nomVec.length; i++)
    pagina += nomVec[i] + "=" + escape(eval(nomVec[i]))+"&";
  pagina = pagina.substring(0,pagina.length-1);
  location.href=pagina;
}
</script>
<div class="content clear-block">
	<h2>Cap&iacute;tulo 4 Problemas en la conexi&oacute;n</h2>
<br /><p class="definicion" align="justify">
Segun he ido instalando bases de datos me he cometido multitud de errores. Aqui os presento algunos de ellos:
</p>
<blockquote>
-	Configuracion de cliente o el servidor erronea.<br />
-	El cliente no podia resolver el nombre del servicio.<br />
-	El protocolo elegido no estaba bien configurado (TCP/IP).<br />
-	Error en el nombre del servicio, password o user.<br />
</blockquote>
<p class="definicion" align="justify">
Si es os estan produciendo estos errores, yo siempre pruebo esto:
<br /><br />
1)	Desde el cliente, hago un ping al servidor para ver si responde.
</p>
<blockquote style="COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif">
<pre><p>C:\users\default>ping matt
Pinging cupira03.cmg.com [10.69.30.113] with 32 bytes of data:
Reply from 10.69.30.113: bytes=32 time=10ms TTL=248
Reply from 10.69.30.113: bytes=32 time=10ms TTL=248
Reply from 10.69.30.113: bytes=32 time<10ms TTL=248
Reply from 10.69.30.113: bytes=32 time=10ms TTL=248
</p></pre></blockquote>
<p class="definicion" align="justify">
2) Sino responde al ping miro a ver donde se esta quedando el paquete. Puede que haya un Firewall que haya cerrado el puerto.
</p>
<blockquote style="COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif">
<pre><p>E:\>tracert 10.20.0.39
Tracing route to rep02.cgnsmadison.com [10.20.0.39]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 211.139.222.26
2 <1 ms <1 ms <1 ms rep02.cgnsmadisono.com [10.20.0.39]
Trace complete.
</p></pre></blockquote>
<p class="definicion" align="justify">
3) Compruebo si el cliente puede contactar con el listener.
</p>
<blockquote style="COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif">
<pre><p>D:\oracle\ora10g\NETWORK\ADMIN>tnsping orcl 2
TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on
10-JUN-2004 10:18:05
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
D:\oracle\ora10g\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS =
(PROTOCOL = TCP)
(HOST = mweishan-dell)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =
ORCL)))
OK (20 msec)
</p></pre></blockquote>
<p class="definicion" align="justify">
4) Intento conectarme a traves de sqlPlus.
</p>
<blockquote style="COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif">
<pre><p>D:\oracle\ora10g\BIN>sqlplus system/manager

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Jun 10 10:08:16 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR: ORA-01034: ORACLE not available

El ORA-01034 nos esta diciendo que la instancia de la base de datos no esta corriendo. Por lo que tendremos que ejecutar un startup.
</p></pre></blockquote>
<p class="definicion" align="justify">
5) Tambien nos puede pasar que la base de datos este abierta pero en RESTRICTED MODE. Por lo que probaremos si esta disponible a todos los usuarios.
</p>
<blockquote style="COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif">
<pre><p>D:\>sqlplus scott/tiger@ORCL
SQL*Plus: Release 10.1.0.2.0 - Production on Thu Jun 10 10:09:19 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege

Tambien podemos obtener este error:

ORA-01045: user MATT lacks CREATE SESSION privilege; logon denied
</p></pre></blockquote>
<p class="definicion" align="justify">
Esto nos esta diciendo que el usuario MATT no tiene el privilegio de CREATE SESSION por lo que tendremos que hacer: <i>GRANT CREATE SESSION TO MATT</i>
<br /><br />
6) Comprobamos el estado y los servicios que tiene configurado el listener:
</p>
<blockquote style="COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif">
<pre><p>D:\oracle\ora10g\BIN>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 10-JUN-2004 10:00:36
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=mweishandell.
corp.goxroads.net)(PORT=1522)))
STATUS of the LISTENER
------------------------
.
.
.
Listener Parameter File D:\oracle\ora10g\network\admin\listener.ora
Listener Log File D:\oracle\ora10g\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mweishandell.
corp.goxroads.net)(PORT=1522)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl.com" has 1 instance(s).
Instance "ORCL", status UNKNOWN,
</p></pre></blockquote>
<p class="definicion" align="justify">
Tambien podemos ejecutar lsnrctl services para ver si el usuario esta intentando la conexion.
<br /><br />
7) Comprobar los timeout de conexion. Si al intentar conectarnos obtenemos ORA-12535 es porque esta saltando el timeout de conexion, esto se produce porque la red en la que estamos, esta experimentando problemas y va demasiado lenta.
</p>
</div>
